package utils

import (
	"encoding/json"
	"github.com/zinx/ziface"
	"io/ioutil"
)

type GlobalObj struct {
	TcpServer ziface.IServer // 当前zinx全局的server对象
	Host      string         // 当前服务器主机监听的ip
	TcpPort   int            // 当前服务器主机监听的端口号
	Name      string         // 当前服务器的名称

	Version        string // 当前zinx的版本号
	MaxConn        int    // 当前服务器主机允许的最大连接数
	MaxPackageSize uint32 // 当前Zinx框架数据包的最大值
}

// 定义全局
var GlobalObject *GlobalObj

func init() {
	// 如果配置文件没有加载，使用默认值
	GlobalObject = &GlobalObj{
		Host:           "0.0.0.0",
		TcpPort:        8899,
		Name:           "ZinxServerApp",
		Version:        "V0.4",
		MaxConn:        1000,
		MaxPackageSize: 4096,
	}
	GlobalObject.Reload()
}

func (g *GlobalObj) Reload() {
	data, err := ioutil.ReadFile("demo/conf/zinx.json")
	if err != nil {
		panic(err)
	}
	if err = json.Unmarshal(data, &GlobalObject); err != nil {
		panic(err)
	}

}
